package com.wang.common.pojo;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.serializer.SerializerFeature;
import lombok.Data;

/**
 * 所有POJO的超类
 *
 * @author wangsh
 */
@Data
public class BasePojo<T> {
    /**
     * 将对象转换为JSON
     *
     * @return
     */
    public JSONObject toJSON() {
        String jsonStr = JSON.toJSONString(this, SerializerFeature.WriteDateUseDateFormat);
        return (JSONObject) JSON.parse(jsonStr);
    }

    /**
     * 从json对象中解析对象,
     * 交给子类去实现
     *
     * @param souJSON 解析json对象
     * @return
     */
    protected T parseJSON(JSONObject souJSON) {
        return null;
    }
}
